# 引入合适的包
import numpy as np
import cv2 as cv
import matplotlib.pyplot as plt

# 此句话限制在不同平台生成随机数相同
# 以便之后答案的审核
np.random.seed(2021)

img = cv.imread("dog.jpg", 0)  # 用opencv读入 dog.jpg 灰度图

h, w = img.shape  # 获得图像的高h和宽w

# 声称噪音图
# 1. 噪音图与狗图的结构相同
# 2. 每一个噪音值应该为满足标准正态分布的随机值20倍
noise = np.random.randn(h, w)*20

# 把原图加上噪音构建包含噪音图
img_noise = img + noise

# 在1个画板上绘制2附子图, 画板高5，宽10
# 第1个子图显示原始灰度图
# 第2个子图显示噪音灰度图
# 2个子图都已灰白色调显示
fg,ax=plt.subplots(1, 2, figsize=(5,10))
ax[0].imshow(img, cmap='gray')
ax[1].imshow(img_noise, cmap='gray')

# 调整子图位置
# 并以最紧凑模式保存plt.show()对应显示内容到 out.png
plt.tight_layout()
plt.savefig("out.png", bbox_inches='tight')
plt.show()